package com.shlh.saas.service;

import com.shlh.saas.entity.WorkbenchStats;

/**
 * 工作台统计服务接口
 */
public interface WorkbenchStatsService {

    /**
     * 获取用户的工作台统计数据
     * @param userId 用户ID
     * @return 工作台统计数据
     */
    WorkbenchStats getByUserId(Long userId);
    
    /**
     * 创建用户的工作台统计数据
     * @param userId 用户ID
     * @return 创建的工作台统计数据
     */
    WorkbenchStats createUserStats(Long userId);
    
    /**
     * 增加海关数据库搜索次数
     * @param userId 用户ID
     */
    void incrementCustomsSearchCount(Long userId);
    
    /**
     * 增加海关数据库导出次数
     * @param userId 用户ID
     * @param count 导出数量
     */
    void incrementCustomsExportCount(Long userId, Integer count);
    
    /**
     * 增加全球企业库搜索次数
     * @param userId 用户ID
     */
    void incrementEnterpriseSearchCount(Long userId);
    
    /**
     * 增加全球企业库导出次数
     * @param userId 用户ID
     * @param count 导出数量
     */
    void incrementEnterpriseExportCount(Long userId, Integer count);
    
    /**
     * 增加广交会采购商搜索次数
     * @param userId 用户ID
     */
    void incrementCantonBuyerSearchCount(Long userId);
    
    /**
     * 增加广交会采购商导出次数
     * @param userId 用户ID
     * @param count 导出数量
     */
    void incrementCantonBuyerExportCount(Long userId, Integer count);
    
    /**
     * 增加广交会参展商搜索次数
     * @param userId 用户ID
     */
    void incrementCantonExhibitorSearchCount(Long userId);
    
    /**
     * 增加广交会参展商导出次数
     * @param userId 用户ID
     * @param count 导出数量
     */
    void incrementCantonExhibitorExportCount(Long userId, Integer count);
    
    /**
     * 增加LinkedIn获客搜索次数
     * @param userId 用户ID
     */
    void incrementLinkedInSearchCount(Long userId);
    
    /**
     * 增加LinkedIn获客搜索次数（兼容小写方法名）
     * @param userId 用户ID
     */
    void incrementLinkedinSearchCount(Long userId);
    
    /**
     * 增加LinkedIn获客导出次数
     * @param userId 用户ID
     * @param count 导出数量
     */
    void incrementLinkedInExportCount(Long userId, Integer count);
    
    /**
     * 增加LinkedIn获客导出次数（兼容小写方法名）
     * @param userId 用户ID
     * @param count 导出数量
     */
    void incrementLinkedinExportCount(Long userId, Integer count);
    
    /**
     * 增加Facebook获客搜索次数
     * @param userId 用户ID
     */
    void incrementFacebookSearchCount(Long userId);
    
    /**
     * 增加Facebook获客导出次数
     * @param userId 用户ID
     * @param count 导出数量
     */
    void incrementFacebookExportCount(Long userId, Integer count);
    
    /**
     * 增加Twitter获客搜索次数
     * @param userId 用户ID
     */
    void incrementTwitterSearchCount(Long userId);
    
    /**
     * 增加Twitter获客导出次数
     * @param userId 用户ID
     * @param count 导出数量
     */
    void incrementTwitterExportCount(Long userId, Integer count);
    
    /**
     * 增加智能搜邮次数
     * @param userId 用户ID
     */
    void incrementIntelligentSearchCount(Long userId);
    
    /**
     * 增加邮件反查次数
     * @param userId 用户ID
     */
    void incrementEmailReverseCount(Long userId);
    
    /**
     * 增加域名反查次数
     * @param userId 用户ID
     */
    void incrementDomainLookupCount(Long userId);
    
    /**
     * 增加社媒反查次数
     * @param userId 用户ID
     */
    void incrementSocialMediaLookupCount(Long userId);
    
    /**
     * 增加Twitter获客查看联系信息次数
     * @param userId 用户ID
     */
    void incrementTwitterViewCount(Long userId);

}